Master/Slave Speculative Parallelization with Distilled Programs
نویسندگان
چکیده
Speculative multithreading holds the potential to substantially improve the execution performance of sequential programs by leveraging the resources of multiple execution contexts (e.g., processors or threads). For unstructured non-numeric programs, the three key challenges of parallelization are (1) predicting the sequence of tasks (i.e., groups of instructions) that corresponds to the correct sequential execution of the program, (2) providing each task with the values it needs to execute (i.e., its live-in values), and (3) tolerating the communication latency between processors. To overcome these challenges, we propose a new execution model that differs from previous speculative multithreading models because of its master/slave nature. In this model, one execution context—the master—executes a speculative approximation of the original program—the distilled program—that allows it to anticipate future controland data-flow and explicitly orchestrate the parallel execution. Because the control flow in the two programs roughly corresponds, the master can accurately predict the sequence of tasks by mapping its program counter (PC) in the distilled program to a task start PC in the original program. Furthermore, speculative state (e.g., register and memory values) generated by the execution of the distilled program serves as predicted live-in values for the tasks. These predictions reduce the impact of communication latency on execution performance. We present an analytical model that shows that, if predictions made by the master are accurate, the execution performance closely tracks that of the distilled program. The distilled program can execute faster than the original program for two reasons: (1) it generates only a subset of the state generated by the original program, and (2) it need not perform the predictable portion of the computation, because the predictions will be verified by the parallelized execution of the original program. We perform an initial exploration of the potential of distilled programs, showing that dynamic instruction count can be reduced significantly with minimal impact on accuracy.
منابع مشابه
Master /
Master/Slave Speculative Parallelization (MSSP) is an execution paradigm for improving the execution rate of sequential programs by parallelizing them speculatively for execution on a multiprocessor. In MSSP, one processor—the master—executes an approximate version of the program to compute selected values that the full program’s execution is expected to compute. The master’s results are checke...
متن کاملMaster/slave Speculative Parallelization and Approximate Code
This dissertation describes Master/Slave Speculative Parallelization (MSSP), a novel execution paradigm to improve the execution rate of sequential programs by parallelizing them speculatively for execution on a multiprocessor. In MSSP, one processor—the master—executes an approximate copy of the program to compute values the program’s execution is expected to compute. The master’s results are ...
متن کاملTowards Formally Defining and Verifying Master/Slave Speculative Parallelization
Master/Slave Speculative Parallelization (MSSP) is a new paradigm aiming at decoupling performance and correctness in microprocessor design and implementation. It is based on the idea that a speculative master processor splits the code and distributes tasks to independent slave processors, which can commit their results only under specific conditions. This work reports the first steps in our ef...
متن کاملFormally Defining and Verifying Master/Slave Speculative Parallelization
Master/Slave Speculative Parallelization (MSSP) is a new execution paradigm that decouples the issues of performance and correctness in microprocessor design and implementation. MSSP uses a fast, not necessarily correct, master processor to speculatively split a program into tasks, which are executed independently and concurrently on slower, but correct, slave processors. This work reports on t...
متن کاملSingle-walk Parallelization of the Genetic Algorithm
Abstract: This paper aims at presenting theoretical properties which can be used to approximate the theoretical speedup of parallel genetic algorithms. The most frequently parallelization method employed to genetic algorithm implements a master-slave model by distributing the most computationally exhausting elements of the algorithm (usually evaluation of the fitness function, i.e. cost functio...
متن کامل